Controller Area Network (CAN) communication systems are wired systems widely accepted for their high performance and reliability, and are gaining widespread popularity in robot applications. A CAN network comprises a serial bus network of microcontrollers that connects devices, sensors and actuators in a system or sub-system for real-time control applications. The CAN bus is a vehicle bus standard that allows microcontrollers in devices to communicate therebetween without relying on a host. One example application is HERMES, a humanoid robot developed by the Intelligent Robot laboratory at the University of Munich. A CAN bus is used to connect all modules of the humanoid system.
FIG. 1 shows an example CAN network 10 including multiple nodes (M) 11 connected via a CAN bus 12. The CAN nodes do not utilize information about system configuration (e.g., node addresses). Instead of an addressing scheme, messages are broadcast to all the nodes in the network using an identifier unique to the network. Based on the identifier, the individual nodes decide whether or not to process a message and also determine the priority of the message in terms of competition for bus access. Additional CAN nodes can be added to the CAN network without the need for reprogramming existing CAN nodes to recognize the additions. In the network 10, the nodes are wired to the CAN bus 12, which in turn is wired to other system components such as a host computer.